package algorithm.leetcode.simple;

/*
 给你一个长度为 n 的整数数组，请你判断在 最多 改变 1 个元素的情况下，该数组能否变成一个非递减数列。
 */

/**
 * @author jack.wu
 * @version 1.0
 * @date 2020/12/31
 */
public class Question665 {

    public static void main(String[] args) {

    }

    public boolean checkPossibility(int[] nums) {
        if (nums == null || nums.length < 1) {
            return true;
        }
        int count = 0;
        for (int i = 1; i < nums.length; i++) {
            if (nums[i - 1] > nums[i]) {
                count++;
                if (count > 1) {
                    return false;
                }
                if (i - 2 >= 0 && nums[i - 2] > nums[i]) {
                    // 上移
                    nums[i] = nums[i - 1];
                } else {
                    // 下移
                    nums[i - 1] = nums[i];
                }
            }
        }
        return true;
    }
}
